/**
 * 图片URL处理工具函数
 */

/**
 * 获取完整的图片URL
 * @param {string} url - 后端返回的图片URL（可能是相对路径或完整URL）
 * @returns {string} 完整的图片URL
 */
export function getFullImageUrl(url) {
  if (!url) return "";

  // 如果已经是完整的URL（包含http或https），直接返回
  if (url.startsWith("http://") || url.startsWith("https://")) {
    return url;
  }

  // 如果是blob URL（本地预览），直接返回
  if (url.startsWith("blob:")) {
    return url;
  }

  // 如果是相对路径，拼接前端地址
  const baseUrl = window.location.origin;
  console.log("baseUrl ===", baseUrl);
  console.log("原始图片URL ===", url);

  // 处理图片路径：确保包含 /app 前缀
  let normalizedUrl = url.startsWith("/") ? url : `/${url}`;

  // 如果路径不是以 /app 开头，则添加 /app 前缀
  if (!normalizedUrl.startsWith("/app/")) {
    // 移除开头的 / 然后添加 /app/
    normalizedUrl = "/app" + normalizedUrl;
  }

  const fullUrl = baseUrl + normalizedUrl;
  console.log("完整图片URL ===", fullUrl);

  return fullUrl;
}

/**
 * 处理后端返回的图片数据
 * @param {Object} response - 后端响应数据
 * @returns {string} 处理后的图片URL
 */
export function processImageResponse(response) {
  if (!response || !response.data) {
    throw new Error("响应数据格式错误");
  }

  const url = response.data.url;
  if (!url) {
    throw new Error("未找到图片URL");
  }

  return getFullImageUrl(url);
}

/**
 * 验证图片URL是否有效
 * @param {string} url - 图片URL
 * @returns {Promise<boolean>} 是否有效
 */
export function validateImageUrl(url) {
  return new Promise((resolve) => {
    if (!url) {
      resolve(false);
      return;
    }

    const img = new Image();
    img.onload = () => resolve(true);
    img.onerror = () => resolve(false);
    img.src = url;
  });
}
